// 这里的vm，就是我们在vue文件里面的this，所以我们能在这里获取vuex的变量，比如存放在里面的token
// 同时，我们也可以在此使用getApp().globalData，如果你把token放在getApp().globalData的话，也是可以使用的
const install = (Vue, vm) => {
	Vue.prototype.$u.http.setConfig((defaultConfig) => {
		// #ifdef H5
		// defaultConfig.baseURL = '/api'
		defaultConfig.baseURL = 'http://localhost:8080/api'
		// defaultConfig.baseURL = 'http://www.zzzsep.com:8080/api'
		// #endif
		// #ifdef APP-PLUS || MP-WEIXIN
		// defaultConfig.baseURL = 'https://8.130.117.85:8080/api'

		
// 
		defaultConfig.baseURL = 'http://localhost:8080/api'

	
		// defaultConfig.baseURL = 'http://www.zzzsep.com:8080/api'
		// #endif
		return defaultConfig
	});
	// 请求拦截，配置Token等参数
	Vue.prototype.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
        // 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
		const { token } = vm.$store.state
		config.header.token = token //  如果携带token提交，还是提示未登录，那么就需要重新登录
        return config
    }, (config) => // 可使用async await 做异步操作
        Promise.reject(config)
	)
	// 响应拦截，判断状态码是否通过
	Vue.prototype.$u.http.interceptors.response.use((response) => {
		const data = response.data
		if (data.code === 200) {
			return Promise.resolve(data)
		} else if (data.code === 400) { // 登录错误
			// 请求异常
			uni.$u.toast(data.msg)
			return Promise.reject(response)
		}
    }, (response) => { /*  对响应错误做点什么 （statusCode !== 200）*/
        return Promise.reject(response)
    })
}
// 定义重定向地址
let total = 0
const getRedirectUrl = () => {
	const pages = getCurrentPages()
	const { route, options } = pages[pages.length - 1]
	if (total > 0 || route.includes('login/index')) {
		return
	}
	total++
	let url = '/pages/login/index?redirectUrl=/' + route
	for (let key in options) {
		url += '&' + key + '=' + options[key]
	}
	uni.reLaunch({ url })
}
export default {
	install
}